1. Technical Field
The present invention relates to computer printing systems, and more particularly to scheduling multiple raster image processors such that the idle times are reduced.
2. Description of the Prior Art
Page description language (PDL) is an efficient way to describe the objects that are to be printed by a computer on a piece of paper. So-called PDL files are typically serially communicated to an intelligent printer that has a rendering engine that converts the PDL into bitmap images or pagemaps. This particuilar task is known as raster-image processing (RIP).
A POSTSCRIPT printer description (PPD) file is a text file that describes the printer features unique to particular printers in particular environments. Ubiquitous POSTSCRIPT printer driver executable program files are used to communicate with printers. These usually assume a generic printer is present with ordinary features and capabilities, e.g., a lowest common denominator default. Each PPD file contains fragments of POSTSCRIPT code that a POSTSCRIPT printer driver can import to make use of a printer""s unique features. In a WINDOWS environment, PPD files load from the driver into the  WINDOWS SYSTEM subdirectory.
A PPD file is not a printer driver. It is an information file, in ASCII format, that is used by a printer driver loaded by an operating system. Since PPD""s are all written in an ASCII-text format, they are not limited to a specific software environment or platform. An ASCII-text PPD file can therefore be used equally well in Windows, MAC-OS, and UNIX environments, and by a variety of software applications. Adobe Systems, Inc. (Sunnyvale, Calif.) has defined how PPD files must be constructed by printer and software vendors in the xe2x80x9cPPD Specification,xe2x80x9d now at version 4.2.
PPD files are used when printing to POSTSCRIPT devices. The PPD""s are written by the printer""s manufacturer to supply characteristic information about a particular printer, e.g., the standard features of the printer, the amount of memory available, any predefined paper sizes, any resident fonts, any resolution capabilities, and any optimized screen sets. When armed with such information, applications like Adobe PageMaker can very efficiently communicate special commands and structures to the printer for special effects and/or higher speed operation.
For example, fonts that are listed as already being resident in the printer can be skipped in a routine download of fonts. So the time needed to download fonts can be saved. Printing by using these PPD files enables PageMaker""s new printing features to be used to advantage. PageMaker 5.0xc3x97 can read PPD Specification 3.0 files, included with PageMaker 4.2. PageMaker 5.0xc3x97 can also read PPD Specification 4.1 files, although PageMaker cannot read the new keywords these PPD files support. PPD files describe a printer""s standard configuration, provided by the printer manufacturer. More detailed information about a particular printer can be supplied to PageMaker by modifying the PPD information with a supplement file, called a custom printer file. If additional printer memory (RAM) or fonts are in a printer, supplementing the PPD file with this information can reduce the print times. PageMaker can determine what it needs to print based on the actual amount of virtual memory (VM) or fonts available. When printing, PageMaker reads the information in the custom printer file before reading the PPD file.
If there is more than one page to be printed by a printer, such pages must be output in the correct order. When there is only one raster-image processor, it makes sense to RIP the first page first, the second page second, the third page third, etc. The raster-image processed pages are then sent to the printer engine in order.
A pipelined raster-image processor is described by Juan Menendez, et al., in U.S. Pat. No. 5,113,494, issued May 12, 1992. A bus is used with separate image processing components, e.g., a scaler, a decompressor, interfaces, etc. Each component can essentially process separate image-processing tasks in parallel. The problem with this system is only one raster-image processor is availaible, albeit a very efficient one. Multiple-page jobs can become RIP-bound.
One approach to printing multiple-page jobs faster is described by Michael Barry, et al., in U.S. Pat. No. 5,596,416, issued Jan. 21, 1997. A single input image device and image distributor were used to drive multiple print engines. These then all were managed to feed a combiner for output. The print engines could then work on a multi-page job in parallel. This works fine when the bottleneck in printing speed is the print engine, but if the limitation is in raster-image processing resources then not much advantage is gained.
Pierre Vennekens describes page description language and raster image processing in both European Patent Application EP-0-733-965-A1, published Sep. 25, 1996, and U.S. Pat. No. 5,652,711, issued Jul. 29, 1997. Such describe the use of several parallel processors to improve the throughput of printing jobs. Pierre Vennekens therefore is describing a conventional multi-RIP system.
Multi-RIP systems were supposed to make printing jobs go faster by adding additional raster-image processors. The idea was that several pages could be worked-on in parallel by several parallel raster-image processors. What prevented this from working as well as was expected was the fact that some pages being printed demand more resources than do others. Some pages are also not independent, they need resources that can only be obtained from the pages that preceed them. For example, fonts that were downloaded with the prior page. In a parellel raster-image processoring environment, the needed prior page may be in progress in parallel in another raster-image processor. So the the first raster-image processor must wait, or idle, until the prior page""s resource becomes available.
Thomas Neufelder describes a system for estimating raster-image processing times in U.S. Pat. No. 5,473,741, issued Dec. 5, 1995. Timing data profiles are used to estimate the actual time for raster-image processing of a PDL-file without committing to do the processing. The raster-image processing jobs can then be costed and scheduled according the processing time that will be required.
A method embodiment of the present invention provides for printing multi-page documents with multiple raster-image processors (RIPs). The method comprises profiling the command stream complexities and resource dependencies of a series of pages to be printed. Then, associating a profile of the command stream complexities and resource dependencies of a series of pages to be printed with a printing command stream. And dispatching individual raster-image processor jobs for each of the pages to be printed to particular RIPs according to the profile. The step of dispatching is preferably such that the complexity estimates and the dependency list are used to minimize idle times for the RIPs. A further step of collecting is done in which the individual outputs of each raster-image processor are recombined into a page-ordered sequence for a print engine.